﻿using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Xms.Abp.Domain;
using Xms.Abp.Settings;

namespace SettingsManagement;

public interface ISettingsManagementProvider: IXmsDomainService
{
    Task ResetAsync(string typeName, string providerName, string providerKey, CancellationToken cancellationToken = default);
    Task SetAsync(string typeName, string providerName, string providerKey, SettingsValues values, CancellationToken cancellationToken = default);
    Task<SettingsInfo> GetSettingsInfoAsync(string typeName, string providerName, string providerKey, CancellationToken cancellationToken = default);
    List<SettingsTypeInfo> GetEditableSettingsTypes(string providerName);
    List<SettingsTypeInfo> GetEditableEnumSettingsTypes(string providerName);
}
